home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 19 / CU Amiga Magazine's Super CD-ROM 19 (1998)(EMAP Images)(GB)[!][issue 1998-02].iso / CUCD / Programming / LEDA / source / src / arith / isparc.s < prev    next >
Encoding:
Text File  |  1994-11-16  |  3.6 KB  |  194 lines

  1.     .seg    "text"            ! [internal]
  2.  
  3.     .global    _PLACEadd
  4. _PLACEadd:
  5.     addcc    %o0,%o1,%o1
  6.     addx    %g0, %g0, %o0
  7.     addcc    %o1,%o2,%o1
  8.     addx    %o0, %g0, %o0
  9.     retl
  10.     st    %o1,[%o3]
  11.  
  12.     .global    _PLACEsub
  13. _PLACEsub:
  14.     subcc    %o0,%o1,%o1
  15.     addx    %g0, %g0, %o0
  16.     subcc    %o1,%o2,%o1
  17.     addx    %o0, %g0, %o0
  18.     retl
  19.     st    %o1,[%o3]
  20.  
  21.     .global    _PLACEmuladd
  22. _PLACEmuladd:
  23.     mov    %o0, %y
  24.     ld      [%o3],%o5        ! *paccu
  25.     andcc    %g0, %g0, %o4        ! reset N and V
  26.     nop
  27.     mulscc    %o4, %o1, %o4    ! first iteration of 33
  28.     mulscc    %o4, %o1, %o4
  29.     mulscc    %o4, %o1, %o4
  30.     mulscc    %o4, %o1, %o4
  31.     mulscc    %o4, %o1, %o4
  32.     mulscc    %o4, %o1, %o4
  33.     mulscc    %o4, %o1, %o4
  34.     mulscc    %o4, %o1, %o4
  35.  
  36.     mulscc    %o4, %o1, %o4
  37.     mulscc    %o4, %o1, %o4
  38.     mulscc    %o4, %o1, %o4
  39.     mulscc    %o4, %o1, %o4
  40.     mulscc    %o4, %o1, %o4
  41.     mulscc    %o4, %o1, %o4
  42.     mulscc    %o4, %o1, %o4
  43.     mulscc    %o4, %o1, %o4
  44.  
  45.     mulscc    %o4, %o1, %o4
  46.     mulscc    %o4, %o1, %o4
  47.     mulscc    %o4, %o1, %o4
  48.     mulscc    %o4, %o1, %o4
  49.     mulscc    %o4, %o1, %o4
  50.     mulscc    %o4, %o1, %o4
  51.     mulscc    %o4, %o1, %o4
  52.     mulscc    %o4, %o1, %o4
  53.  
  54.     mulscc    %o4, %o1, %o4
  55.     mulscc    %o4, %o1, %o4
  56.     mulscc    %o4, %o1, %o4
  57.     mulscc    %o4, %o1, %o4
  58.     mulscc    %o4, %o1, %o4
  59.     mulscc    %o4, %o1, %o4
  60.     mulscc    %o4, %o1, %o4
  61.     mulscc    %o4, %o1, %o4
  62.  
  63.     mulscc    %o4, %g0, %o4
  64.  
  65.     tst    %o1            ! sign correction
  66.     bge    Lpma1
  67.     nop
  68.     add    %o4, %o0, %o4        ! sign correction
  69. Lpma1:
  70.     rd    %y, %o0            ! prod (low)
  71.  
  72.     addcc    %o5, %o2, %o2        ! carry + *paccu
  73.     addx    %g0,%g0,%o5
  74.     addcc    %o0, %o2, %o1        ! prod + ...
  75.     addx    %o4, %o5, %o0
  76.     retl
  77.     st      %o1,[%o3]
  78.  
  79.     .global    _PLACEmul
  80. _PLACEmul:
  81.     mov    %o0, %y
  82.     andcc    %g0, %g0, %o4        ! reset N and V
  83.     nop
  84.     nop
  85.     mulscc    %o4, %o1, %o4    ! first iteration of 33
  86.     mulscc    %o4, %o1, %o4
  87.     mulscc    %o4, %o1, %o4
  88.     mulscc    %o4, %o1, %o4
  89.     mulscc    %o4, %o1, %o4
  90.     mulscc    %o4, %o1, %o4
  91.     mulscc    %o4, %o1, %o4
  92.     mulscc    %o4, %o1, %o4
  93.  
  94.     mulscc    %o4, %o1, %o4
  95.     mulscc    %o4, %o1, %o4
  96.     mulscc    %o4, %o1, %o4
  97.     mulscc    %o4, %o1, %o4
  98.     mulscc    %o4, %o1, %o4
  99.     mulscc    %o4, %o1, %o4
  100.     mulscc    %o4, %o1, %o4
  101.     mulscc    %o4, %o1, %o4
  102.  
  103.     mulscc    %o4, %o1, %o4
  104.     mulscc    %o4, %o1, %o4
  105.     mulscc    %o4, %o1, %o4
  106.     mulscc    %o4, %o1, %o4
  107.     mulscc    %o4, %o1, %o4
  108.     mulscc    %o4, %o1, %o4
  109.     mulscc    %o4, %o1, %o4
  110.     mulscc    %o4, %o1, %o4
  111.  
  112.     mulscc    %o4, %o1, %o4
  113.     mulscc    %o4, %o1, %o4
  114.     mulscc    %o4, %o1, %o4
  115.     mulscc    %o4, %o1, %o4
  116.     mulscc    %o4, %o1, %o4
  117.     mulscc    %o4, %o1, %o4
  118.     mulscc    %o4, %o1, %o4
  119.     mulscc    %o4, %o1, %o4
  120.  
  121.     mulscc    %o4, %g0, %o4
  122.  
  123.     tst    %o1            ! sign correction
  124.     bge    Lpm1
  125.     nop
  126.     add    %o4, %o0, %o4        ! sign correction
  127. Lpm1:
  128.     rd    %y, %o0            ! prod (low)
  129.  
  130.     addcc    %o0, %o2, %o1        ! prod + carry
  131.     addx    %o4, %g0, %o0
  132.     retl
  133.     st      %o1,[%o3]
  134.  
  135.     .global    _PLACEmulsub
  136. _PLACEmulsub:
  137.     mov    %o0, %y
  138.     ld      [%o3],%o5        ! *paccu
  139.     andcc    %g0, %g0, %o4        ! reset N and V
  140.     nop
  141.     mulscc    %o4, %o1, %o4    ! first iteration of 33
  142.     mulscc    %o4, %o1, %o4
  143.     mulscc    %o4, %o1, %o4
  144.     mulscc    %o4, %o1, %o4
  145.     mulscc    %o4, %o1, %o4
  146.     mulscc    %o4, %o1, %o4
  147.     mulscc    %o4, %o1, %o4
  148.     mulscc    %o4, %o1, %o4
  149.  
  150.     mulscc    %o4, %o1, %o4
  151.     mulscc    %o4, %o1, %o4
  152.     mulscc    %o4, %o1, %o4
  153.     mulscc    %o4, %o1, %o4
  154.     mulscc    %o4, %o1, %o4
  155.     mulscc    %o4, %o1, %o4
  156.     mulscc    %o4, %o1, %o4
  157.     mulscc    %o4, %o1, %o4
  158.  
  159.     mulscc    %o4, %o1, %o4
  160.     mulscc    %o4, %o1, %o4
  161.     mulscc    %o4, %o1, %o4
  162.     mulscc    %o4, %o1, %o4
  163.     mulscc    %o4, %o1, %o4
  164.     mulscc    %o4, %o1, %o4
  165.     mulscc    %o4, %o1, %o4
  166.     mulscc    %o4, %o1, %o4
  167.  
  168.     mulscc    %o4, %o1, %o4
  169.     mulscc    %o4, %o1, %o4
  170.     mulscc    %o4, %o1, %o4
  171.     mulscc    %o4, %o1, %o4
  172.     mulscc    %o4, %o1, %o4
  173.     mulscc    %o4, %o1, %o4
  174.     mulscc    %o4, %o1, %o4
  175.     mulscc    %o4, %o1, %o4
  176.  
  177.     mulscc    %o4, %g0, %o4
  178.  
  179.     tst    %o1            ! sign correction
  180.     bge    Lpms1
  181.     nop
  182.     add    %o4, %o0, %o4        ! sign correction
  183. Lpms1:
  184.     rd    %y, %o0            ! prod (low)
  185.  
  186.     addcc    %o0, %o2, %o2        ! carry + prod (low)
  187.     addx    %o4,%g0,%o0        ! (high)
  188.     subcc    %o5, %o2, %o1        ! *paccu -  ...
  189.     addx    %o0, %g0, %o0
  190.     retl
  191.     st      %o1,[%o3]
  192.  
  193.     .seg    "data"            ! [internal]
  194.